import Router from 'koa-router'
import axios from './utils/axios'
import mongoProvince from '../dbs/models/province'
import mongoCity from '../dbs/models/city'

let router = new Router({
  prefix: '/geo'
})
const sign = '53f12f810b6440b332f75bcb157cbedd'

//---------------------------------------------------------------------------------------

router.get('/menu', async ctx => {
  // const result = await Menu.findOne()
  // ctx.body = {
  //   menu: result.menu
  // }

  let {
    status,
    data: { menu }
  } = await axios.get(`http://cp-tools.cn/geo/menu/?sign=${sign}`)
  if (status == 200) return (ctx.body = { menu })
  return (ctx.body = { menu: [] })
})
//----------------------------    /province  -------------------------------------

router.get('/province', async ctx => {
  // let province = await mongoProvince.find()
  // ctx.body = {
  //   province: province.map(item => { //返回的是数组
  //     return {
  //       id: item.id,
  //       name: item.value[0]
  //     }
  //   })
  // }
  let {
    status,
    data: { province }
  } = await axios.get(`http://cp-tools.cn/geo/province?sign=${sign}`)
  ctx.body = { province: status === 200 ? province : [] }
})
router.get('/getPosition', async ctx => {
  let {
    status,
    data: { province, city }
  } = await axios.get(`http://cp-tools.cn/geo/getPosition/?sign=${sign}`)
  if (status == 200) return (ctx.body = { province, city })
  return (ctx.body = { province: '', city: '' })
})
//-----------------------------------  /province/:id    --------------------------------------------
///province/:id ctx.params.id 获取url地址的:id
router.get('/province/:id', async ctx => {
  // let city = await mongoCity.findOne({id: ctx.params.id})
  //
  // ctx.body = {
  //   code: 0,
  //   city: city.value.map(item => {
  //     return {province: item.province, id: item.id, name: item.name}
  //   })
  // }
  let {
    status,
    data: { city }
  } = await axios.get(`http://cp-tools.cn/geo/province/${ctx.params.id}?sign=${sign}`)
  if (status === 200) return (ctx.body = { city })
  ctx.body = { city: [] }
})
//------------------------            /city     -----------------------------------------------
router.get('/city', async ctx => {
  let city = []
  let result = await mongoCity.find()
  result.forEach(item => {
    city = city.concat(item.value) //相当于city.push(item.value)
  })
  ctx.body = {
    code: 0,
    city: city.map(item => {
      return {
        province: item.province,
        id: item.id,
        name:
          item.name === '市辖区' || item.name === '省直辖县级行政区划'
            ? item.province
            : item.name
      }
    })
  }

  // let {
  //   status,
  //   data: { city }
  // } = await axios.get(`http://cp-tools.cn/geo/city?sign=${sign}`)
  // if (status === 200) return (ctx.body = { city })
  // ctx.body = { city: [] }
})
//---------------------------------     /hotCity         -------------------------------------------
router.get('/hotCity', async ctx => {
  let list = [
    '北京市',
    '上海市',
    '广州市',
    '深圳市',
    '天津市',
    '西安市',
    '杭州市',
    '南京市',
    '武汉市',
    '成都市'
  ]
  let result = await mongoCity.find()
  let nList = []
  result.forEach(item => {
    nList = nList.concat(
      item.value.filter(k => list.includes(k.name) || list.includes(k.province))
    )
  })
  ctx.body = {
    hots: nList
  }

  // let {
  //   status,
  //   data: { hots }
  // } = await axios.get(`http://cp-tools.cn/geo/hotCity?sign=${sign}`)
  // if (status === 200) {
  //   ctx.body = {
  //     hots
  //   }
  // } else {
  //   ctx.body = {
  //     hots: []
  //   }
  // }
})

export default router
